
//第三个参数是模块的配置参数，当模块启动时，会执行里面的程序，对模块进行配置
//可以配置一些与模块相关的信息，供模块进行使用
//可以在模块启动时配置一些信息，供所有模块使用

//这种自定义服务方法不太会用，这里只是简单介绍
//因为$provide还定义了很多简便方法，这些简便方法才是我们要用的
var myApp = angular.module('myApp',[],function ($provide){
    
    //自定义服务，该模块下的所有controller都可以自动地依赖注入这个服务
    //注入的时候在function里面传入相同的名字即可，return 的对象会自动注入到自定义的服务中
    $provide.provider('customService',function(){

        this.$get = function () {
            return {
                name : "张三",
                age :  28,
                reduce : function () {
                    console.log(3);
                }
            }
        }
    });

    //可以定义多个服务
    $provide.provider('customService2',function(){

        this.$get = function () {
            return {
                name : "张三",
                age :  28,
                reduce : function () {
                    console.log(3);
                }
            }
        }
    });
})

//angular会根据服务名自动匹配它所在的服务，这个服务所对应的$get是它所调用的公共接口方法，它会执行里面的function，然后返回里面的对象
myApp.controller('firstController',function ($scope,customService) {

    console.log(customService)

    // console.log(customService.reduce());

    //有值可用来初始化
    //声明一个model
    $scope.name = "李寻欢";

//    函数用来改变name的值
    $scope.age = 20;

})

